require_relative "rpgxp-json"

if __FILE__ == $0
  # 获取输入目录参数，默认为 "data"
  input_dir = ARGV[0] || "data"
  # 获取输出目录参数，默认为 "json"
  output_dir = ARGV[1] || "json"
  
  # 检查输入目录是否存在
  unless Dir.exist?(input_dir)
    puts "错误: 目录 '#{input_dir}' 不存在"
    puts "用法: ruby xp2json.rb [输入目录] [输出目录]"
    exit 1
  end
  
  # 确保输出目录存在
  Dir.mkdir(output_dir) unless Dir.exist?(output_dir)
  
  puts "正在转换目录: #{input_dir} -> #{output_dir}"
  
  Dir.glob("#{input_dir}/*.rxdata").each do |fn|
    next if fn =~ /[Ss]cripts/ # exclude scripts

    json_fn = format("#{output_dir}/%s.json", fn.split("/")[-1].split(".")[0])
    puts "转换: #{fn} -> #{json_fn}"
    
    obj = load_data(fn)
    File.open(json_fn, "w") do |f|
      f << fade(obj).to_json
    end
  end
  
  puts "转换完成！"
end
